home *** CD-ROM | disk | FTP | other *** search
- #define IGNORE_STDIO_STUBS
- #define __string_h
-
- #ifdef OLDGCC
-
- #include <Common.h>
- #include <System/SysAll.h>
- #include <UI/UIAll.h>
- #include <Unix/sys_types.h>
-
- #else
-
- #include <PalmOS.h>
- #include <PalmCompatibility.h>
- #include <Unix/sys_types.h>
-
- #endif
-
- #include "stringil.h"
- #include "stdio2.h"
-
- char pqatop[] = { 0xca, 0xb1, 0x90, 0x04, 0x44, 0x21 };
-
- char pqahead[] = {
- 'l', 'n', 'c', 'h',
- 0, 3, 0x80, 1,
- 0, 1, '1', 0,
- 0, 1, 'X', 0,
- 0, 0, 0, 0
- };
-
- char pqatwo[] = {
- 0, 0, 0, 16, /*url offset */
- 0, 1, /* url length */
- 0, 0, 0, 18, /*html offset */
- 0, 1, /* html length */
- 4, 1, /* content, compression */
- 0, 0,
- 'X', 0,
-
- };
-
- char bbuf[512];
-
- int MakePQA(char *url)
- {
- LocalID lid, aiid;
- UInt16 num, attr;
- UInt32 asz;
- DmOpenRef db;
- void *ap, *xp;
- char *c = url, *d = bbuf;
- int len = 1, count = 7, i;
-
- lid = DmFindDatabase(0, "X.pqa");
- if (lid)
- DmDeleteDatabase(0, lid);
- DmCreateDatabase(0, "X.pqa", 'clpr', 'pqa ', 0);
- lid = DmFindDatabase(0, "X.pqa");
- attr = 0x200;
- DmSetDatabaseInfo(0, lid, NULL, &attr, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL);
- WinDrawChars("/", 1, 150, 0);
- db = DmOpenDatabase(0, lid, dmModeReadWrite);
- asz = 20;
- WinDrawChars("\\", 1, 155, 0);
-
- ap = DmNewHandle(db, asz);
- aiid = MemHandleToLocalID(ap);
- xp = MemHandleLock(ap);
- DmWrite(xp, 0, pqahead, 20);
- MemHandleUnlock(ap);
- DmSetDatabaseInfo(0, lid, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, &aiid, NULL, NULL, NULL);
-
- num = 0xffff;
- ap = DmNewRecord(db, &num, 1024);
- xp = MemHandleLock(ap);
-
- memset(bbuf, 0, 512);
-
- #define putbits(num,val) \
- { \
- i = (num); \
- while( --i >= 0 ) { \
- if ( (1 << i) & (val) ) \
- *d |= 1 << count; \
- if( count-- == 0 ) { \
- count = 7; len++; d++; \
- } \
- } \
- }
-
- while (*c) {
- if (*c >= 'a' && *c <= 'z')
- putbits(5, *c + 6 - 'a')
- else if (*c == ' ')
- putbits(5, 5)
- else {
- putbits(5, 2)
- putbits(8, *c)
- }
- c++;
- }
-
- putbits(5, 0);
- putbits(5, 29);
- putbits(5, 0);
- putbits(5, 1);
- putbits(8, 0x71);
-
- pqatwo[11] = len + 6;
-
- DmWrite(xp, 0, pqatwo, 18);
- DmWrite(xp, 18, pqatwo, 6);
- DmWrite(xp, 18 + 6, bbuf, len);
-
- MemHandleUnlock(ap);
- DmResizeRecord(db, num, len + 18 + 6);
- DmReleaseRecord(db, num, false);
- DmCloseDatabase(db);
- return 0;
- }
-